﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace BookLibrary
{
    public class Book
    {
        private string _titel;
        private string _isbn;
        private decimal _prijs;
        private int _status;
        private String _uitgever;
        private String _categorie;

        public Book(string titel, string isbn, decimal prijs, int status, String uitgever, String categorie)
        {
            Titel = titel;
            Isbn = isbn;
            Prijs = prijs;
            Status = status;
            Uitgever = uitgever;
            Categorie = categorie;
        }

        public override string ToString()
        {
            return Titel + " " + _isbn;
        }

        public Book(Book book)
        {
            Titel = book.Titel;
            Isbn = book.Isbn;
            Prijs = book.Prijs;
            Status = book.Status;
            Uitgever = book.Uitgever;
            Categorie = book.Categorie;
        }

        public string Titel
        {
            get
            {
                return _titel;
            }

            set
            {
                _titel = value;
            }
        }

        public string Isbn
        {
            get
            {
                return _isbn;
            }

            set
            {
                _isbn = value;
            }
        }

        public decimal Prijs
        {
            get
            {
                return _prijs;
            }

            set
            {
                _prijs = value;
            }
        }

        public int Status
        {
            get
            {
                return _status;
            }

            set
            {
                _status = value;
            }
        }

        public String Uitgever
        {
            get
            {
                return _uitgever;
            }

            set
            {
                _uitgever = value;
            }
        }

        public String Categorie
        {
            get
            {
                return _categorie;
            }

            set
            {
                _categorie = value;
            }
        }

        // override object.Equals
        public override bool Equals(object obj)
        {
            if (obj == null || GetType() != obj.GetType())
            {
                return false;
            }
            else
            {
                //controleer op ISBN (=uniek)
                return this.Isbn == ((Book)obj).Isbn;
            }
        }

        // override object.GetHashCode
        public override int GetHashCode()
        {
            //gebruik ISBN (=uniek) als hashcode
            return int.Parse(Isbn);
        }

    }
}
